package com.lzh.runke.mapper;

import com.lzh.runke.entity.TWxfwZyld;
import com.lzh.runke.enums.DisposalMethodEnum;
import com.lzh.runke.enums.JointOrderStatusEnum;
import com.lzh.runke.enums.WasteFormsEnum;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @Description: 固体废物mapper
 * @Author: LiuZiHao
 * @Date: 2022/12/13 19:39
 */
@Mapper
public interface SolidWasteMapper {

    /**
     * 转移联单-按条件-详情集合查询
     *
     * @param disposalMethods    处置方式
     * @param wasteForms         废物形态
     * @param jointOrderStatus   联单状态
     * @param transfertStartTime 转移开始时间
     * @param transferEndTime    转移结束时间
     * @param acceptStartTime    接收开始时间
     * @param acceptEndTime      接收结束时间
     * @param keyword            模糊搜索内容
     * @return
     */
    List<TWxfwZyld> loadTransferCopyDetailBySpec(
            @Param("disposalMethods") List<DisposalMethodEnum> disposalMethods,
            @Param("wasteForms") List<WasteFormsEnum> wasteForms,
            @Param("jointOrderStatus") List<JointOrderStatusEnum> jointOrderStatus,
            @Param("transfertStartTime") Date transfertStartTime,
            @Param("transferEndTime") Date transferEndTime,
            @Param("acceptStartTime") Date acceptStartTime,
            @Param("acceptEndTime") Date acceptEndTime,
            @Param("keyword") String keyword
    );

    /**
     * 转移联单-按条件-列表查询
     *
     * @param disposalMethods    处置方式
     * @param wasteForms         废物形态
     * @param jointOrderStatus   联单状态
     * @param transfertStartTime 转移开始时间
     * @param transferEndTime    转移结束时间
     * @param acceptStartTime    接收开始时间
     * @param acceptEndTime      接收结束时间
     * @param keyword            模糊搜索内容
     * @return
     */
    List<TWxfwZyld> loadTransferCopyBySpec(@Param("disposalMethods") List<DisposalMethodEnum> disposalMethods,
                                           @Param("wasteForms") List<WasteFormsEnum> wasteForms,
                                           @Param("jointOrderStatus") List<JointOrderStatusEnum> jointOrderStatus,
                                           @Param("transfertStartTime") Date transfertStartTime,
                                           @Param("transferEndTime") Date transferEndTime,
                                           @Param("acceptStartTime") Date acceptStartTime,
                                           @Param("acceptEndTime") Date acceptEndTime,
                                           @Param("keyword") String keyword);
}
